// 注册的接口
var express = require('express');
var router = express.Router();
var async = require('async');
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://127.0.0.1:27017/';

// location:3000/register
router.get('/', function(req, res) {
  var userName = req.query.userName; // 电话号码
  var pwd = req.query.pwd; // 密码
  // 未输入用户名
  if (userName == '') {
    res.json({
      code: 1,
      msg: '电话号码或密码不能为空',
      data: {
        userName: userName,
        pwd: pwd
      }
    });
  } else {
    // 输入了用户名
    MongoClient.connect(
      url,
      {
        useNewUrlParser: true
      },
      function(err, client) {
        if (err) {
          // 直接返回错误
          console.log('链接数据库失败', err);
          res.json({
            code: 1,
            msg: '网络异常, 请稍候重试',
            data: {
              userName: userName
            }
          });
        } else {
          var db = client.db('jumei');
          db.collection('users')
            .find({
              userName: userName
            })
            .toArray(function(err, arr) {
              if (err) {
                res.json({
                  code: 1,
                  msg: '用户查询失败',
                  data: {
                    userName: userName
                  }
                });
              } else {
                // 查询成功（是否存在该用户？）
                if (arr[0]) {
                  // 存在
                  return res.json({
                    code: 1,
                    msg: '该用户已注册！请更换用户',
                    data: {
                      userName: userName
                    }
                  });
                } else {
                  // 不存在（可以注册）
                  if (/^\d{11}$/.test(userName)) {
                    if (/^\d{6}$/.test(pwd)) {
                      var db = client.db('jumei');
                      db.collection('users').insertOne(
                        {
                          userName: userName,
                          pwd: pwd
                        },
                        function(err, arr) {
                          if (err) {
                            res.json({
                              code: 1,
                              msg: '注册失败！',
                              data: {
                                userName: userName
                              }
                            });
                          } else {
                            res.json({
                              code: 0,
                              msg: '注册成功！',
                              data: {
                                userName: userName,
                                pwd: pwd
                              }
                            })
                          }
                        }
                      );
                    } else {
                      res.json({
                        code: 1,
                        msg: '密码为空或不符',
                        data: {
                          userName: userName
                        }
                      });
                    }
                  } else {
                    res.json({
                      code: 1,
                      msg: '用户名不符',
                      data: {
                        userName: userName
                      }
                    });
                  }
                }
              }
            });
        }
      }
    );
  }
});
module.exports = router;
